package com.yunxi.sto.pojo;

import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.yunxi.core.web.DateJsonDeserializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * <p>
 * 车辆库存管理
 * </p>
 *
 * @author caoYong
 * @since 2019-05-29
 */
@Data
@ApiModel(value="VehicleStock对象", description="车辆库存管理")
public class VehicleStockVO implements Serializable {

    @ApiModelProperty(value = "主键ID")
    private String vehicleId;

    @ApiModelProperty(value = "VIN码")
    private String vin;

    @ApiModelProperty(value = "渠道CODE")
    private String partnerCode;

    @ApiModelProperty(value = "仓库代码")
    private String storageCode;

    @ApiModelProperty(value = "库位代码")
    private String storageLocation;

    @ApiModelProperty(value = "车辆类型")
    private String carType;

    @ApiModelProperty(value = "开始时间")
    private String startDate;

    @ApiModelProperty(value = "预计保养时间")
    private String maintainDate;

    @ApiModelProperty(value = "保养相差时间")
    private Integer differDay;

    @ApiModelProperty(value = "取消原因")
    private String info;

    @ApiModelProperty(value = "创建时间")
    private Date createDate;

    @ApiModelProperty(value = "创建人")
    private String createBy;

    @ApiModelProperty(value = "修改时间")
    private Date updateDate;

    @ApiModelProperty(value = "修改人")
    private String updateBy;

    @ApiModelProperty(value = "状态1启用0禁用")
    private Integer status;

    @ApiModelProperty(value = "是否删除")
    private Integer isDel;

    @ApiModelProperty(value = "备注")
    private String memo;

    @ApiModelProperty(value = "车辆是否冻结(1是0否)")
    private String vehicleIsFrozen;

    @ApiModelProperty(value = "车系名称")
    private String seriesName;

    @ApiModelProperty(value = "车型名称")
    private String modelName;

    @ApiModelProperty(value = "配置名称")
    private String catalogName;

    @ApiModelProperty(value = "仓库名称")
    private String storageName;

    @ApiModelProperty(value = "库位名称")
    private String storageLocationName;

    @ApiModelProperty(value = "入库时间")
    @JsonDeserialize(using = DateJsonDeserializer.class)
    private Date stockInDate;

    @ApiModelProperty(value = "库存状态(DealerVehicleStock_InventoryStatus,0在途,1在库,2出库,3租赁中)")
    private String storageStatus;

    @ApiModelProperty(value = "车辆流转状态(Vehicle_TurnState,01DSC 待生产,02ZZSX 总装上线,03ZZXX 总装下线,04HZSX 焊装上线,05HZXX 焊装下线,06TZSX 涂装上线,07TZXX 涂装下线,08CLXX 车辆下线,09PDI PDI完成,10VDCRK VDC入库,11VDCCK VDC出库,12FYZT 发运在途,13QDSC 渠道收车,14QDRK 渠道入库,15LSCK 零售出库,16LSTH 零售退货,17THRK 退货入库,18THCK 退货出库)")
    private String carState;

    @ApiModelProperty(value = "是否锁定(0未锁定 1锁定)")
    private String isLock;

    @ApiModelProperty(value = "冻结原因")
    private String frozenReason;

    @ApiModelProperty(value = "选装包")
    private String customPackCode;

    @ApiModelProperty(value = "内饰颜色")
    private String colorNameIn;

    @ApiModelProperty(value = "外饰颜色")
    private String colorNameOut;

    @ApiModelProperty(value = "车辆类型")
    private String carTypeName;

    @ApiModelProperty(value = "雇佣状态")
    private Integer hireStatus;

    @ApiModelProperty(value = "入库日期")
    private Date inStockDate;

    @ApiModelProperty(value = "出库日期")
    private Date outStockDate;

    private List<VehicleMaintainItemVO> listVehicleMaintainItem = new ArrayList<VehicleMaintainItemVO>();
    @ApiModelProperty(value = "上次保养类型")
    private String lastMaintainType;

}
